// 1. 计算
/**
 * 选择设char型变量x中的值为10100111，则表达式(2+x)^(~5)的值是().
 * A.10101001
 * B.10101000
 * c.01011100
 * D.01010011
*/

#include <iostream>
#include <iomanip>
#include <bitset>

int main(void)
{
  char x = 167;
  std::cout << "hex:" << std::hex << ((2 + x) ^ (~5)) << std::endl; // 十六进制
  std::cout << "dec:" << std::dec << ((2 + x) ^ (~5)) << std::endl; // 十进制
  std::cout << "oct:" << std::oct << ((2 + x) ^ (~5)) << std::endl; // 八进制
  // std::cout << "x:" << std::setbase(x) << ((2 + x) ^ (~5)) << std::endl; // 任意进制
  std::cout << "bin:" << std::bitset<sizeof(int) * 8>((2 + x) ^ (~5)) << std::endl; // 二进制
  printf("-----------------end----------------\n");
  return 0;
}